/**
 * Create by mzq
 * Description: 状态管理工具
 * Date: 2025/2/8 16:19
 * Update: 2025/2/8 16:19
 */

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({  state: {
    // 当前登录人的信息
    userInfo: {
      id: '',
      name: '',
      account: '',
      password: ''  // 添加密码字段
    },
    // ei的设备列表
    devices: [],
    // 蓝牙连接状态
    isConnected: false,
    //蓝牙设备的mac/id 地址(用这个id是为了dfu升级)
    bleId: '',
    // 头环的设备id (是给头环写入指令要用的)
    deviceId: '',
    // 头环的服务id (是给头环写入指令要用的)
    serviceId: '',
    // 保存写入服务的uuid (是给头环写入指令要用的)
    characteristicId: '',
    // 接收头环的原始数据（新版本4.0.0）
    originalData: [],
    // 当前患者信息
    currentPatient: null,
  },
  mutations: {
    // 保存当前登录人的信息
    setUserInfo(state, userInfo) {
      state.userInfo = userInfo
    },
    // 保存设备列表
    setDevices(state, devices) {
      if (devices === null) {
        state.devices = []
      } else {
        state.devices.push(devices)
      }
    },
    // 保存蓝牙连接状态
    setIsConnected(state, isConnected) {
      state.isConnected = isConnected
    },
    // 保存蓝牙设备的mac/id 地址(用这个id是为了dfu升级)
    setBleId(state, bleId) {
      state.bleId = bleId
    },
    // 保存头环的设备id
    setDeviceId(state, deviceId) {
      state.deviceId = deviceId
    },
    // 保存头环的服务id
    setServiceId(state, serviceId) {
      state.serviceId = serviceId
    },
    // 保存保存写入服务的uuid
    setCharacteristicId(state, characteristicId) {
      state.characteristicId = characteristicId
    },
    // 保存原始数据
    setOriginalData(state, originalData){
      state.originalData = originalData
    },
    // 保存当前患者信息
    SET_CURRENT_PATIENT(state, patient) {
      state.currentPatient = patient
    },
  },
  actions: {
    asyncOriginalData({ commit }, originalData){
      commit('setOriginalData', originalData)
    },
  },
})

export default store
